import 'dart:convert';
import 'dart:io';

class FileService {
  static bool isIco(String base64String) {
    List<int> decodedBytes = base64.decode(base64String);
    // 判断是否为 ICO 文件
    if (decodedBytes.length >= 6 &&
        decodedBytes[0] == 0x00 &&
        decodedBytes[1] == 0x00 &&
        decodedBytes[2] == 0x01 &&
        decodedBytes[3] == 0x00 &&
        decodedBytes[4] == 0x01 &&
        decodedBytes[5] == 0x00) {
      return true;
    }
    return false;
  }

  static bool isPng(String base64String) {
    List<int> decodedBytes = base64.decode(base64String);
    // 判断是否为 PNG 文件
    if (decodedBytes.length >= 8 &&
        decodedBytes[0] == 0x89 &&
        decodedBytes[1] == 0x50 &&
        decodedBytes[2] == 0x4E &&
        decodedBytes[3] == 0x47 &&
        decodedBytes[4] == 0x0D &&
        decodedBytes[5] == 0x0A &&
        decodedBytes[6] == 0x1A &&
        decodedBytes[7] == 0x0A) {
      return true;
    }
    return false;
  }

  static bool isSvg(String base64String) {
    List<int> decodedBytes = base64.decode(base64String);
    // 判断是否为 SVG 文件
    if (decodedBytes.length >= 3 &&
        decodedBytes[0] == 0x3C &&
        decodedBytes[1] == 0x3F &&
        decodedBytes[2] == 0x78) {
      return true;
    }
    return false;
  }
}
